extends Resource
class_name Model
#Model类,主要处理属性和属性对应的方法.


var 上一个数: float = 0
var 当前数字: float = 0
var 当前运算: String = ""
var has_current_number: bool = false
var 精度位数: int = 0  # 添加此行以跟踪小数点后有多少数字

## 清空数据
func 清零方法() -> void:
	当前数字 = 0
	上一个数 = 0
	当前运算 = ""
	has_current_number = false
	精度位数 = 0  # 重置小数点位置

## 计算
func evaluate_expression() -> void:
	var result: float = 0.0
	match 当前运算:
		"+" : result = 上一个数 + 当前数字
		"-" : result = 上一个数 - 当前数字
		"*" : result = 上一个数 * 当前数字
		"/" : 
			if 当前数字 != 0:
				result = 上一个数 / 当前数字
			else:
				print("D除数不能为0!")
		_:
			print("不支持运算符: ", 当前运算)
	上一个数 = 0
	当前数字 = result
	当前运算 = ""
	has_current_number = true
	刷新小数位数(当前数字)

## 更新小数点位数
func 刷新小数位数(value: float) -> void:
	var value_str = str(value)
	if "." in value_str:
		精度位数 = value_str.length() - value_str.find(".")
	else:
		精度位数 = 0
